home *** CD-ROM | disk | FTP | other *** search
/ Discover France / Discover France.iso / setup.mst < prev    next >
Text File  |  1995-09-26  |  12KB  |  435 lines

  1. '**************************************************************************
  2. '*                       MSSetup Telemedia
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG   ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'setst.inc'
  10.  
  11. ''Dialog ID's
  12. CONST ASKQUIT      = 200
  13. CONST DESTPATH     = 300
  14. CONST EXITFAILURE  = 400
  15. CONST EXITQUIT     = 600
  16. CONST EXITSUCCESS  = 700
  17. CONST OPTIONS      = 800
  18. CONST APPHELP      = 900
  19. CONST RESTART      = 2600
  20. CONST RESTARTII    = 2700
  21. CONST CUSTINST     = 6200
  22. CONST TELEINST     = 6250
  23. CONST TOOBIG       = 6300
  24. CONST BADPATH      = 6400
  25.  
  26. ''Bitmap ID
  27. CONST LOGO         = 1
  28.  
  29. ''File Types
  30. CONST APPFILES     = 1
  31. CONST OPTFILES1    = 2
  32. CONST OPTFILES2    = 3
  33.  
  34. GLOBAL SRCDIR$
  35.  
  36. GLOBAL DEST$        ''Default destination directory.
  37. GLOBAL WINDRIVE$    ''Windows drive letter.
  38. GLOBAL WINDIR$
  39. GLOBAL WINSYSDIR$
  40. GLOBAL TBKDIR$
  41. GLOBAL SndDIR$
  42. GLOBAL SndZiel$
  43. GLOBAL TBKDEST$
  44. GLOBAL NEEDET&
  45. GLOBAL DRVSPACE&
  46. GLOBAL tb15Path$
  47.  
  48. '' Driver 
  49. CONST ADDVFW            = 1
  50. GLOBAL VFWPATH$
  51.  
  52.  
  53. ''CustInst list symbol names
  54.  
  55. ''Dialog list symbol names
  56. GLOBAL STATUSTEXT$
  57. GLOBAL DRIVETEXT$
  58.  
  59.  
  60. DECLARE SUB BuildCopyList
  61. DECLARE SUB CalculateCopyList
  62. DECLARE SUB SetDriveStatus
  63. DECLARE SUB RegisterEntries
  64. DECLARE SUB CreateIniEntries
  65. DECLARE SUB SetupProgman
  66.  
  67. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  68.  
  69. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  70. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  71. DECLARE SUB Reboot LIB "iniupd.dll"
  72. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  73.  
  74.  
  75. TRAP CleanupTrap From "MSSHLSTF.DLL"
  76.  
  77. End Trap           
  78.         
  79.  
  80.  
  81.         Inst% = HinstFrame()
  82.  
  83.  
  84.     ii% = CreateCover(0, 0, 0, 0, 0)
  85.     
  86.         ret% = Ctl3dRegister(Inst%)
  87.         ret% = Ctl3dAutoSubClass(Inst%)
  88.  
  89.         hSetup = InitSetup(COMMAND$)
  90.         hWnd% = HwndFrame()
  91.     ret% = SubSetMainWin(hWnd%)
  92.     
  93.     ii% = CloseCover()
  94.  
  95.  
  96.     WIN32ENABLED% = 0
  97.     MajorVer% = GetWindowsMajorVersion()
  98.     MinorVer% = GetWindowsMinorVersion()
  99.  
  100.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  101.         i% = DoMsgBox("Microsoft Windows version 3.10 is required to run this program.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  102.         END
  103.     END IF
  104.         
  105.     IF DeviceColor() <= 256 THEN
  106.        ii% = DoMsgBox("Please, Set Your video number of colors at least 32,000", "Hardware", MB_OK)
  107.        GOTO QUIT
  108.     END IF
  109.  
  110.  
  111. ON ERROR GOTO QUIT
  112.  
  113. INIT:
  114.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  115.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  116.     SetTitle "Voyage in France"
  117.     VFWPATH$ = "VFW\"
  118.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  119.     IF szInf$ = "" THEN
  120.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  121.     END IF
  122.  
  123.     ReadInfFile szInf$
  124.  
  125.     WINDRIVE$ = UCASE$(MID$(GetWindowsDir, 1, 1))
  126.     DEST$ = WINDRIVE$ + ":\France"
  127.         WINDIR$ = GetWindowsDir()
  128.         WINSYSDIR$ = GetWindowsSysDir()
  129.  
  130.     ''CustInst list symbols
  131.  
  132.     STATUSTEXT$  = "StatusItemsText"
  133.     DRIVETEXT$   = "DriveStatusText"
  134.  
  135.     
  136.     FOR i% = 1 TO 3 STEP 1
  137.         AddListItem STATUSTEXT$, ""
  138.     NEXT i%
  139.  
  140.     FOR i% = 1 TO 2 STEP 1
  141.         AddListItem DRIVETEXT$, ""
  142.     NEXT i%
  143.  
  144.     ReplaceListItem DRIVETEXT$, 2, DEST$
  145.     
  146.     SetDriveStatus
  147.  
  148.  
  149. CUSTINST:
  150.     sz$ = UIStartDlg(CUIDLL$, TELEINST, "FTeleInstDlgProc", APPHELP, HELPPROC$)
  151.  
  152.     IF sz$ = "CONTINUE" THEN
  153.         ''Install only if it will fit.
  154.                 BuildCopyList
  155.                 CalculateCopyList
  156.                 IF NEEDET& <> 0 THEN
  157.                         GOSUB TOOBIG
  158.                         GOTO CUSTINST
  159.                 END IF
  160.         UIPop 1
  161.         GOTO INSTALL
  162.     ELSEIF sz$ = "PATH" THEN
  163.         GOTO GETPATH
  164.     ELSEIF sz$ = "REACTIVATE" THEN
  165.         SetDriveStatus
  166.         GOTO CUSTINST
  167.     ELSE
  168.         GOSUB ASKQUIT
  169.         GOTO CUSTINST
  170.     END IF
  171.  
  172.  
  173.  
  174. INSTALL:
  175.     CreateDir DEST$, cmoNone
  176.    
  177.     BuildCopyList
  178.     CopyFilesInCopyList
  179.     CreateIniEntries
  180.     RegisterEntries
  181.     SetupProgman
  182.  
  183.  
  184.     RESTRT% = RestartListEmpty ()
  185.     Exe$ = DEST$ + "\_msrstrt.exe"
  186.     Batch$ = DEST$ + "\_mssetup.bat"
  187.     empty$ = ""
  188.     
  189.  RESTART:
  190. IF RESTRT% = 0 THEN
  191.         sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  192.         IF sz$ = "REACTIVATE" THEN
  193.                 GOTO RESTART
  194.         ENDIF
  195.         I% = ExitExecRestart ()
  196.         RemoveFile Exe$, cmoForce
  197.         RemoveFile Batch$, cmoForce
  198.         END
  199. ELSE
  200.         sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  201.         IF sz$ = "CONTINUE" THEN
  202.                 I% = ExitWindowsExec (Exe$, empty$)
  203.                 IF I% = 0 THEN
  204.                         GOTO RESTART
  205.                 ELSE
  206.                         END
  207.                 ENDIF
  208.         ELSEIF sz$ = "EXIT" THEN
  209.                 UIPopAll
  210.                 END
  211.         ELSEIF sz$ = "REACTIVATE" THEN
  212.                 GOTO RESTART
  213.         ELSE
  214.                 UIPop 1
  215.         END IF
  216. END IF
  217.  
  218.  
  219. QUIT:
  220.     ''ON ERROR GOTO ERRQUIT
  221.  
  222.     IF ERR = 0 THEN
  223.         dlg% = EXITSUCCESS
  224.     ELSEIF ERR = STFQUIT THEN
  225.         dlg% = EXITQUIT
  226.     ELSE
  227.         dlg% = EXITQUIT          ''EXITFAILURE
  228.     END IF
  229.  
  230.  
  231. ERRQUIT:
  232.      i% = DoMsgBox("VOYAGE IN FRANCE is not installed properly!", "Setup Error", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  233.     END
  234.  
  235.  
  236.  
  237. GETPATH:
  238.     SetSymbolValue "EditTextIn", DEST$
  239.     SetSymbolValue "EditFocus", "END"
  240. GETPATHL1:
  241.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  242.  
  243.     IF sz$ = "CONTINUE" THEN
  244.         olddest$ = DEST$
  245.         DEST$ = GetSymbolValue("EditTextOut")
  246.  
  247.         ''Validate new path.
  248.         IF IsDirWritable(DEST$) = 0 THEN
  249.             GOSUB BADPATH
  250.             GOTO GETPATHL1
  251.         END IF
  252.         UIPop 1
  253.  
  254.         ''Truncate display if too long.
  255.         IF LEN(DEST$) > 23 THEN
  256.             ReplaceListItem DRIVETEXT$, 2, MID$(DEST$, 1, 23)+"..."
  257.         ELSE
  258.             ReplaceListItem DRIVETEXT$, 2, DEST$
  259.         END IF
  260.  
  261.         ''Recalc if path changed.
  262.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  263.             SetDriveStatus
  264.         END IF
  265.  
  266.         olddest$ = ""
  267.         GOTO CUSTINST
  268.     ELSEIF sz$ = "REACTIVATE" THEN
  269.         SetDriveStatus
  270.         GOTO GETPATHL1
  271.     ELSEIF sz$ = "EXIT" THEN
  272.         GOSUB ASKQUIT
  273.         GOTO GETPATHL1
  274.     ELSE
  275.         UIPop 1
  276.         GOTO CUSTINST
  277.     END IF
  278.  
  279.  
  280.  
  281. TOOBIG:
  282.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  283.     IF sz$ = "REACTIVATE" THEN
  284.         SetDriveStatus
  285.         GOTO TOOBIG
  286.     END IF
  287.     UIPop 1
  288.     RETURN
  289.  
  290.  
  291.  
  292. BADPATH:
  293.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  294.     IF sz$ = "REACTIVATE" THEN
  295.         SetDriveStatus
  296.         GOTO BADPATH
  297.     END IF
  298.     UIPop 1
  299.     RETURN
  300.  
  301.  
  302.  
  303. ASKQUIT:
  304.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  305.  
  306.     IF sz$ = "EXIT" THEN
  307.         UIPopAll
  308.         ERROR STFQUIT
  309.     ELSEIF sz$ = "REACTIVATE" THEN
  310.         GOTO ASKQUIT
  311.     ELSE
  312.         UIPop 1
  313.     END IF
  314.     RETURN
  315.  
  316.  
  317.  
  318. SUB CalculateCopyList STATIC
  319.         NEEDET& = GetCopyListCost("", "", "")   
  320. END SUB
  321.  
  322. SUB SetupProgman STATIC
  323.         '' Todo Add Progman Commands
  324.  
  325.         CreateProgmanGroup "MULTIMEDIA from E.M.M.E.", "", cmoOverwrite
  326.         ShowProgmanGroup "MULTIMEDIA from E.M.M.E.", 1, cmoNone
  327.         CreateProgmanItem "MULTIMEDIA from E.M.M.E.", "Voyage in France", MakePath(dest$,"france.exe"),MakePath(DEST$,"france.exe"), cmoOverwrite 
  328.  
  329. END SUB
  330.  
  331. SUB BuildCopyList STATIC
  332.  
  333.     SRCDIR$  = GetSymbolValue("STF_SRCDIR")
  334.     TBSRC$   = MakePath(SRCDIR$, TBKDIR$)        
  335.     sndSRC$  = MakePath(SRCDIR$, sndDIR$)        
  336.     snddest$ = MakePath(Dest$, SndZiel$)         
  337.     TBKDEST$ = MakePath(WINDIR$, "asym\runtime\")        
  338.     source$ = MakePath(srcdir$, "setup\")        
  339.  
  340.     ClearCopyList
  341.             adds